34. 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums，和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target，返回 [-1, -1]。
你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/


int* searchRange(int* nums, int numsSize, int target, int* returnSize)
{   
    int *ans=(int*)malloc(sizeof(int)*2);
    ans[0]=-1;
    ans[1]=-1;
    if(numsSize==0)
    {
        return ans;
    }
    int head=0;
    int end=numsSize-1;
    int mid=(head+end)/2;
    //找左标
    while(head<end)
    {
        if(nums[mid]>=target)
        {
           end=mid;
        }
        else
        {
            head=mid+1;
        }
        mid=(head+end)/2;
    }
    if(nums[end]!=target)
    {
        return ans;
    }
    else
    {
        ans[0]=end;
   //右标
    head=0;
    end=numsSize-1;
    mid=(head+end)/2;
    while(head<end)
    {
        if(nums[mid]<=target)
        {
            head=mid;
        }
        else
        {
           end=mid-1;
        }
        mid=(head+end+1)/2;
    }
    }
    ans[1]=head;
    *returnSize=2;
    return ans;
}